#pragma once
//============================================================================
// Copyright (C) 2003-2012 Brett R. Jones 
// All Rights Reserved
//
// You may redistribute and/or modify for non commercial and commercial uses 
// provided this copyright notice remains in place and is not modified
//
// This code is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
//
// brettjones1900@gmail.com
// http://www.p2panarchy.com
//============================================================================

#pragma pack(push) 
#pragma pack(1)
class RcSysPktRelayConnectReq : public RcSysPktHdr
{
public:
	//=== vars ===//
	VxConnectId		m_oConnectId;
	U16				m_u16Res;
	U32				m_u32Res1;
	U32				m_u32Res2;
	U32				m_u32Res3;
	U32				m_u32Res4;

	//=== constructor ===//
	RcSysPktRelayConnectReq()
		: m_u16Res(0)
		, m_u32Res1(0)
		, m_u32Res2(0)
		, m_u32Res3(0)
		, m_u32Res4(0)
	{
		m_u16PktLen		= sizeof(RcSysPktRelayConnectReq);		
		m_u16PktType	= RC_SYS_PKT_TYPE_PROXY_CONNECT_REQ; 
		vx_assert( 0 == ( m_u16PktLen & 0x0f ) );
	};
};

class RcSysPktRelayConnectReply : public RcSysPktHdr
{
public:
	//=== vars ===//
	VxConnectId		m_oConnectId;
	U16				m_u16ConnectFailed;
	U32				m_u32Res1;
	U32				m_u32Res2;
	U32				m_u32Res3;
	U32				m_u32Res4;

	//=== constructor ===//
	RcSysPktRelayConnectReply()
		: m_u16ConnectFailed(0)
		, m_u32Res1(0)
		, m_u32Res2(0)
		, m_u32Res3(0)
		, m_u32Res4(0)
	{
		m_u16PktLen		= sizeof(RcSysPktRelayConnectReply);		
		m_u16PktType	= RC_SYS_PKT_TYPE_PROXY_CONNECT_REPLY; 
		vx_assert( 0 == ( m_u16PktLen & 0x0f ) );
	};
};

class RcSysPktRelayUserDisconnect : public RcSysPktHdr
{
public:
	//=== vars ===//
	OnlineId		m_oUserId;
	U32				m_u32Res1;
	U32				m_u32Res2;

	//=== constructor ===//
	RcSysPktRelayUserDisconnect()
		: m_u32Res1(0)
		, m_u32Res2(0)
	{
		m_u16PktLen		= sizeof(RcSysPktRelayUserDisconnect);		
		m_u16PktType	= RC_SYS_PKT_TYPE_PROXY_USER_DISCONNECT; 
		vx_assert( 0 == ( m_u16PktLen & 0x0f ) );
	};
};
#pragma pack(pop)
